Many modern applications, such as line-of-business applications, are distributed. A distributed application is an application that is deployed with respect to multiple processing systems (e.g., computers). Accordingly, various components of a distributed application are deployed on respective processing systems. The processing systems collaborate to perform activities that are initiated by users. For example, a user may submit a request to sell a stock; another user may submit a request to watch a video; yet another user may submit a request to buy a book, and so on. The processing systems interact as needed to fulfill the requests of the users.
When a problem is detected with respect to a component of a distributed application, a source of the problem may not be the processing system on which that component is deployed. For instance, the source of the problem may be any processing system, database, network switch, etc. that was accessed for fulfilling requests of users.
Conventional techniques for determining a source of a problem with respect to a distributed application involve gathering information from all systems that are believed to have been accessed by the application. However, gathering the information from all such systems and analyzing the information may consume substantial time and/or resources. Moreover, conventional techniques often involve incorporating additional components into the distributed application for purposes of re-routing messages to a store from which the messages may be subsequently retrieved for analysis. The addition of such components often increases the overhead of the distributed application.